package mianshi;

/**
 * description:
 * author:张腾
 * date:2021-07-16
 */

/**
 * URL化。编写一种方法，将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符，
 * 并且知道字符串的“真实”长度。（注：用Java实现的话，请使用字符数组实现，以便直接在数组上操作。）
 */
public class _01_03 {
    //使用StringBuilder
    public String replaceSpaces1(String S, int length) {
        StringBuilder stringBuilder = new StringBuilder();
        //逐渐遍历字符串
        for (int i = 0; i < length; i++) {
            char ch = S.charAt(i);
            if (ch == ' ') {
                stringBuilder.append("%20");
            } else {
                stringBuilder.append(ch);
            }
        }
        return stringBuilder.toString();
    }
    //不使用额外空间
    public String replaceSpaces(String S, int length) {
        char[] c = S.toCharArray();
        int fillId = S.length()-1;
        for (int i = length - 1; i >= 0; i--) {
            if (c[i]==' '){
                c[fillId]='0';
                c[fillId-1]='2';
                c[fillId-2]='%';
                fillId -= 3;
            }else{
                c[fillId] = c[i];
                fillId--;
            }
        }
        String s = String.valueOf(c);
        return s.substring(fillId+1);
    }
}
